<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Box2D APi: C:/Users/ARme/Desktop/box2d/Box2D/Collision/b2Collision.h File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Box2D APi
   &#160;<span id="projectnumber">251</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.8.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('b2_collision_8h.html','');
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">C:/Users/ARme/Desktop/box2d/Box2D/Collision/b2Collision.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;Box2D/Common/b2Math.h&gt;</code><br/>
<code>#include &lt;climits&gt;</code><br/>
</div>
<p><a href="b2_collision_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_contact_feature.html">b2ContactFeature</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionb2_contact_i_d.html">b2ContactID</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contact ids to facilitate warm starting.  <a href="unionb2_contact_i_d.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_manifold_point.html">b2ManifoldPoint</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_manifold.html">b2Manifold</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_world_manifold.html">b2WorldManifold</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is used to compute the current state of a contact manifold.  <a href="structb2_world_manifold.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_clip_vertex.html">b2ClipVertex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for computing contact manifolds.  <a href="structb2_clip_vertex.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_ray_cast_input.html">b2RayCastInput</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1).  <a href="structb2_ray_cast_input.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_ray_cast_output.html">b2RayCastOutput</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_a_a_b_b.html">b2AABB</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An axis aligned bounding box.  <a href="structb2_a_a_b_b.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a0a894e3715ce8c61b7958dd6e083663d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a> { <a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663da7ce77ce1a592f49d92939997976c217b">b2_nullState</a>, 
<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663dac60dc479bee2089a695b37948179b3d4">b2_addState</a>, 
<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663dafb032f2175741fa95361e55d1c069e0a">b2_persistState</a>, 
<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663da42ca6d7de57b948c8c895cd6f51ee8be">b2_removeState</a>
 }</td></tr>
<tr class="memdesc:a0a894e3715ce8c61b7958dd6e083663d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is used for determining the state of contact points.  <a href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a401e2747d276e9fbfd131989e02ff568"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a401e2747d276e9fbfd131989e02ff568">b2GetPointStates</a> (<a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a> state1[<a class="el" href="b2_settings_8h.html#aa5f44cc9edf711433dea2b2ec94f3c42">b2_maxManifoldPoints</a>], <a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a> state2[<a class="el" href="b2_settings_8h.html#aa5f44cc9edf711433dea2b2ec94f3c42">b2_maxManifoldPoints</a>], const <a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold1, const <a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold2)</td></tr>
<tr class="memitem:ab8a1bf2c6a9453307466f4870c1fa333"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8a1bf2c6a9453307466f4870c1fa333"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#ab8a1bf2c6a9453307466f4870c1fa333">b2CollideCircles</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:ab8a1bf2c6a9453307466f4870c1fa333"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between two circles. <br/></td></tr>
<tr class="memitem:a30da13c857596fbefa40b47c3e1e78d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30da13c857596fbefa40b47c3e1e78d0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a30da13c857596fbefa40b47c3e1e78d0">b2CollidePolygonAndCircle</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *polygonA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:a30da13c857596fbefa40b47c3e1e78d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between a polygon and a circle. <br/></td></tr>
<tr class="memitem:a2f7b9859479384c0e2cceb9e7744afcb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f7b9859479384c0e2cceb9e7744afcb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a2f7b9859479384c0e2cceb9e7744afcb">b2CollidePolygons</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *polygonA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *polygonB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:a2f7b9859479384c0e2cceb9e7744afcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between two polygons. <br/></td></tr>
<tr class="memitem:aee6f752fdf8c89152e824da12e944733"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee6f752fdf8c89152e824da12e944733"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#aee6f752fdf8c89152e824da12e944733">b2CollideEdgeAndCircle</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_edge_shape.html">b2EdgeShape</a> *polygonA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_circle_shape.html">b2CircleShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:aee6f752fdf8c89152e824da12e944733"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between an edge and a circle. <br/></td></tr>
<tr class="memitem:a5d0c5fab412d5ca886b1965666b16d99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d0c5fab412d5ca886b1965666b16d99"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a5d0c5fab412d5ca886b1965666b16d99">b2CollideEdgeAndPolygon</a> (<a class="el" href="structb2_manifold.html">b2Manifold</a> *manifold, const <a class="el" href="classb2_edge_shape.html">b2EdgeShape</a> *edgeA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="classb2_polygon_shape.html">b2PolygonShape</a> *circleB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:a5d0c5fab412d5ca886b1965666b16d99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the collision manifold between an edge and a circle. <br/></td></tr>
<tr class="memitem:a8b36e651798f55f2533f9837462ded41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b36e651798f55f2533f9837462ded41"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#a8b36e651798f55f2533f9837462ded41">b2ClipSegmentToLine</a> (<a class="el" href="structb2_clip_vertex.html">b2ClipVertex</a> vOut[2], const <a class="el" href="structb2_clip_vertex.html">b2ClipVertex</a> vIn[2], const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;normal, float32 offset, int32 vertexIndexA)</td></tr>
<tr class="memdesc:a8b36e651798f55f2533f9837462ded41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clipping for contact manifolds. <br/></td></tr>
<tr class="memitem:ae7601420d0b42c1ee494e879dd2009a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7601420d0b42c1ee494e879dd2009a5"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_collision_8h.html#ae7601420d0b42c1ee494e879dd2009a5">b2TestOverlap</a> (const <a class="el" href="classb2_shape.html">b2Shape</a> *shapeA, int32 indexA, const <a class="el" href="classb2_shape.html">b2Shape</a> *shapeB, int32 indexB, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfA, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xfB)</td></tr>
<tr class="memdesc:ae7601420d0b42c1ee494e879dd2009a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if two generic shapes overlap. <br/></td></tr>
<tr class="memitem:a3dea7a8a1115626c450a697f6c6bf97e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3dea7a8a1115626c450a697f6c6bf97e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>b2TestOverlap</b> (const <a class="el" href="structb2_a_a_b_b.html">b2AABB</a> &amp;a, const <a class="el" href="structb2_a_a_b_b.html">b2AABB</a> &amp;b)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a910fdc8a802b3cac220f2ee873109818"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a910fdc8a802b3cac220f2ee873109818"></a>
const uint8&#160;</td><td class="memItemRight" valign="bottom"><b>b2_nullFeature</b> = UCHAR_MAX</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Structures and functions used for computing contact points, distance queries, and TOI queries. </p>
</div><hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is used for determining the state of contact points. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663da7ce77ce1a592f49d92939997976c217b"></a>b2_nullState</em>&nbsp;</td><td>
<p>point does not exist </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663dac60dc479bee2089a695b37948179b3d4"></a>b2_addState</em>&nbsp;</td><td>
<p>point was added in the update </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663dafb032f2175741fa95361e55d1c069e0a"></a>b2_persistState</em>&nbsp;</td><td>
<p>point persisted across the update </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a0a894e3715ce8c61b7958dd6e083663da42ca6d7de57b948c8c895cd6f51ee8be"></a>b2_removeState</em>&nbsp;</td><td>
<p>point was removed in the update </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a401e2747d276e9fbfd131989e02ff568"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="b2_collision_8h.html#a401e2747d276e9fbfd131989e02ff568">b2GetPointStates</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a>&#160;</td>
          <td class="paramname"><em>state1</em>[b2_maxManifoldPoints], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="b2_collision_8h.html#a0a894e3715ce8c61b7958dd6e083663d">b2PointState</a>&#160;</td>
          <td class="paramname"><em>state2</em>[b2_maxManifoldPoints], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_manifold.html">b2Manifold</a> *&#160;</td>
          <td class="paramname"><em>manifold1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_manifold.html">b2Manifold</a> *&#160;</td>
          <td class="paramname"><em>manifold2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Compute the point states given two manifolds. The states pertain to the transition from manifold1 to manifold2. So state1 is either persist or remove while state2 is either add or persist. </p>

</div>
</div>
</div><!-- contents -->
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="b2_collision_8h.html">b2Collision.h</a>      </li>

    <li class="footer">Generated on Mon Sep 17 2012 15:56:57 for Box2D APi by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.0 </li>
   </ul>
 </div>


</body>
</html>
